const userService = require("../service/user.service.js")
const md5password = require("../utils/md5-password.js")

// 验证客户端传递过来的user是否可以保存到数据库中
const verifyUser = async (ctx, next) => {
  // 1 验证用户名和密码是否为空
  const { username, password } = ctx.request.body
  if (!username || !password) {
    return ctx.app.emit("error", "username_or_password_is_required", ctx)
  }
  // 2 查看数据库中是否已经存在账号
  const findRes = await userService.findUserByName(username)
  if (findRes.length) {
    return ctx.app.emit("error", "username_or_password_is_required", ctx)
  }

  await next()
}

// 对密码加密
const handlePassword = async (ctx, next) => {
  // 取出密码
  const { password } = ctx.request.body
  // 对密码加密
  ctx.request.body.password = md5password(password)
  // 执行下一个中间件
  await next()
}

module.exports = {
  verifyUser,
  handlePassword,
}
